#include "furniture.h"
#include <iostream>
using namespace std;

namespace iotek {

Weight::Weight() {}
Weight::Weight(int weight) {
  m_weight = weight;
}
void Weight::setWeight(int weight) {
  m_weight = weight;
}
int Weight::getWeight() {
  return m_weight;
}

Sofa::Sofa(int weight) : Weight(weight) {}
void Sofa::watchTV() {
  cout << "watchTV" << endl;
}

Bed::Bed(int weight) : Weight(weight) {}
void Bed::sleep() {
  cout << "sleep" << endl;
}

// 只有这些同时存在才行。
// .h 中 Sofabed 要同时继承 Sofa和Bed，所以这里必须有这两个；
// .h 中不需要继承 Weight，但这里要写上，否则第一次getWeight时得不到正确值。
// 但是视频中竟然只写 Weight(weight) 就可以了！！
// 一开始以为在 .h 中不需要继承Sofa和Bed，测试发现更加不行~~
Sofabed::Sofabed(int weight) : Weight(weight), Sofa(weight), Bed(weight) {}
void Sofabed::foldout() {
  cout << "sofabed foldout" << endl;
}

}